using System;
using System.Collections.Generic;
using TestClassesForConcepts;
using TestClassesForConcepts.Sample1;

concept C1[T] {}

concept C2[T, S, U] 
{
    type A1;
    type A2 == KeyA;
}

concept C3[T, S, U, V] 
{
    type A1 <: B;
    type A2 == C;
    //type A3 == A<KeyA, List<Int32>>;
    type A4 >: C<LinkedList<KeyA>>;
    type A5 <: C<A<KeyA, KeyA>>;
}